home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 140 / Gekkan Dennou Club - 2000.1 Vol. 140 (Japan).7z / Gekkan Dennou Club - 2000.1 Vol. 140 (Japan) (Track 1).bin / tools / xpicw / xpicw110.lzh / WLSource / rainbow.s < prev    next >
Encoding:
Text File  |  1997-07-11  |  18.8 KB  |  1,370 lines

  1. *    rainbow.s
  2. *        虹 / 最高速 = 2
  3. *            by Mitsuky
  4.  
  5.     .include    DOSCALL.MAC
  6.  
  7. SPEED_MAX    equ    2
  8.  
  9.     .offset    8        * 引き数
  10. _source_ptr:    .ds.l    1
  11. _dest_ptr:    .ds.l    1
  12. _speed:        .ds.l    1
  13. _vdisp:        .ds.l    1
  14.  
  15.  
  16.     .offset    0
  17. gvram_ptr:    .ds.l    1
  18. counter:    .ds.w    1
  19. work_size:
  20.  
  21.  
  22. gpos    .macro    pos_x,pos_y
  23.     .dc.w    (pos_y*1024)+(pos_x*2)
  24.     .endm
  25.  
  26. dpos    .macro    pos_x,pos_y,wait
  27.     .dc.l    wait<<24|pos_y<<4<<10|pos_x<<4<<1
  28.     .endm
  29.  
  30.  
  31.     .text
  32.     .even
  33.  
  34.     .dc.b    'WL10',$0d,$0a
  35.     .dc.b    '虹 / 最高速 = 2',$0d,$0a
  36.     .dc.b    '    by Mitsuky',$0d,$0a
  37.     .dc.b    $1a
  38.     .even
  39.  
  40. rainbow:
  41.     link    a6,#0
  42.     movem.l    d1-d7/a0-a5,-(sp)
  43.  
  44.     suba.l    a5,a5
  45.  
  46.     move.l    _speed(a6),d0
  47.     bmi    rainbow_ask_speed
  48.     cmpi.l    #SPEED_MAX,d0
  49.     bhi    rainbow_err
  50.  
  51.     tst.l    _vdisp(a6)
  52.     bmi    rainbow_ask_vdisp
  53.  
  54.  
  55.     move.l    #work_size*(512/16)*(512/16),-(sp)
  56.     DOS    _MALLOC
  57.     addq.w    #4,sp
  58.     tst.l    d0
  59.     bmi    rainbow_err
  60.     movea.l    d0,a5            * a5.l = ワークのアドレス
  61.  
  62.  
  63.     movea.l    _source_ptr(a6),a2    * a2.l = 転送元アドレス
  64.     movea.l    _dest_ptr(a6),a3    * a3.l = 転送先アドレス
  65.     lea.l    table2(pc),a1        * a1.l = table2 のポインタ
  66.  
  67.             * ワークの初期化
  68.     movea.l    a5,a0
  69.     move.w    #(512/16)*(512/16)-1,d0
  70.     moveq.l    #-1,d1
  71. @@:    move.w    d1,counter(a0)
  72.     lea.l    work_size(a0),a0
  73.     dbra    d0,@b
  74.  
  75.  
  76.     lea.l    appear(pc),a0
  77.     clr.w    (a0)    * 出現カウンター
  78. rainbow_loop:
  79.     moveq.l    #SPEED_MAX,d1
  80.     sub.l    _speed(a6),d1
  81. @@:    move.l    _vdisp(a6),a0
  82.     jsr    (a0)
  83.     dbra    d1,@b
  84.  
  85.     sf.b    d5
  86.  
  87.  
  88.             * ワークを出現させる
  89. 1:
  90.     lea.l    appear(pc),a0
  91.     subq.w    #1,(a0)
  92.     bpl    5f
  93.     move.l    (a1)+,d0
  94.     bmi    4f
  95.  
  96.     movea.l    a5,a4            * a4.l = ワークのアドレス
  97. 2:    tst.w    counter(a4)
  98.     bmi    3f
  99.     lea.l    work_size(a4),a4
  100.     bra    2b
  101. 3:    move.l    d0,d1
  102.     andi.l    #$00ffffff,d1
  103.     move.l    d1,gvram_ptr(a4)
  104.     clr.w    counter(a4)
  105.     rol.l    #8,d0
  106.     andi.w    #$00ff,d0
  107.     movea.l    a5,a4
  108.     lea.l    appear(pc),a0
  109.     move.w    d0,(a0)
  110.     bra    1b
  111. 4:
  112.     lea.l    appear(pc),a0
  113.     move.w    #32767,(a0)
  114. 5:
  115.  
  116.     movem.l    a1,-(sp)    **
  117.  
  118.  
  119.     move.w    #(512/16)*(512/16)-1,d7    * d7.w = ループ回数
  120.     movea.l    a5,a4
  121. rainbow_loop_2:
  122.     tst.w    counter(a4)
  123.     bmi    rainbow_loop_2_end
  124.  
  125.  
  126.     st.b    d5
  127.  
  128.     moveq.l    #4-1,d6
  129. @@:
  130.     movea.w    counter(a4),a1
  131.     move.w    a1,d0
  132.     addq.w    #1,d0
  133.     move.w    d0,counter(a4)
  134.     add.w    a1,a1
  135.     movea.w    table(pc,a1.w),a1
  136.     adda.l    gvram_ptr(a4),a1
  137.  
  138.     movea.l    a2,a0
  139.     adda.l    a1,a0
  140.     move.w    (a0),d1
  141.     move.w    8*2(a0),d2
  142.     move.w    8*512*2(a0),d3
  143.     move.w    8*512*2+8*2(a0),d4
  144.  
  145.     movea.l    a3,a0
  146.     adda.l    a1,a0
  147.     move.w    d1,(a0)
  148.     move.w    d2,8*2(a0)
  149.     move.w    d3,8*512*2(a0)
  150.     move.w    d4,8*512*2+8*2(a0)
  151.  
  152.     dbra    d6,@b
  153.  
  154.  
  155.     move.w    counter(a4),d0
  156.     cmpi.w    #64,d0
  157.     bcs    @f
  158.     move.w    #-1,counter(a4)
  159. @@:
  160.  
  161. rainbow_loop_2_end:
  162.     lea.l    work_size(a4),a4
  163.     dbra    d7,rainbow_loop_2
  164.  
  165.     movem.l    (sp)+,a1    **
  166.  
  167.     tst.b    d5
  168.     bne    rainbow_loop
  169.  
  170.     moveq.l    #0,d0
  171. rainbow_rts:
  172.     move.l    a5,d1
  173.     beq    @f
  174.     movem.l    d0,-(sp)
  175.     pea.l    (a5)
  176.     DOS    _MFREE
  177.     addq.w    #4,sp
  178.     movem.l    (sp)+,d0
  179. @@:
  180.     movem.l    (sp)+,d1-d7/a0-a5
  181.     unlk    a6
  182.     rts
  183.  
  184.  
  185. *********************************************************
  186. table:
  187.     gpos    0,0
  188.     gpos    4,4
  189.     gpos    2,6
  190.     gpos    5,1
  191.     gpos    7,3
  192.     gpos    2,2
  193.     gpos    6,6
  194.     gpos    3,7
  195.     gpos    7,1
  196.     gpos    0,4
  197.     gpos    7,7
  198.     gpos    4,2
  199.     gpos    1,5
  200.     gpos    6,0
  201.     gpos    3,3
  202.     gpos    5,7
  203.     gpos    6,2
  204.     gpos    2,0
  205.     gpos    3,5
  206.     gpos    6,4
  207.     gpos    3,1
  208.     gpos    7,5
  209.     gpos    1,3
  210.     gpos    4,6
  211.     gpos    5,3
  212.     gpos    4,0
  213.     gpos    0,2
  214.     gpos    1,7
  215.     gpos    5,5
  216.     gpos    1,1
  217.     gpos    0,6
  218.     gpos    2,4
  219.  
  220.  
  221.     gpos    1,0
  222.     gpos    5,4
  223.     gpos    3,6
  224.     gpos    6,1
  225.     gpos    0,3
  226.     gpos    3,2
  227.     gpos    7,6
  228.     gpos    4,7
  229.     gpos    0,1
  230.     gpos    1,4
  231.     gpos    0,7
  232.     gpos    5,2
  233.     gpos    2,5
  234.     gpos    7,0
  235.     gpos    4,3
  236.     gpos    6,7
  237.     gpos    7,2
  238.     gpos    3,0
  239.     gpos    4,5
  240.     gpos    7,4
  241.     gpos    4,1
  242.     gpos    0,5
  243.     gpos    2,3
  244.     gpos    5,6
  245.     gpos    6,3
  246.     gpos    5,0
  247.     gpos    1,2
  248.     gpos    2,7
  249.     gpos    6,5
  250.     gpos    2,1
  251.     gpos    1,6
  252.     gpos    3,4
  253.  
  254.  
  255. *     0 1 2 3 4 5 6 7
  256. *    00..17..25..13.. 0
  257. *    ..29..20..03..08 1
  258. *    26..05..11..16.. 2
  259. *    ..22..14..24..04 3
  260. *    09..31..01..19.. 4
  261. *    ..12..18..28..21 5
  262. *    30..02..23..06.. 6
  263. *    ..27..07..15..10 7
  264.  
  265. *     0 1 2 3 4 5 6 7
  266. *    ..00..17..25..13 0
  267. *    08..29..20..03.. 1
  268. *    ..26..05..11..16 2
  269. *    04..22..14..24.. 3
  270. *    ..09..31..01..19 4
  271. *    21..12..18..28.. 5
  272. *    ..30..02..23..06 6
  273. *    10..27..07..15.. 7
  274.  
  275. ****    ****
  276.     .even
  277. rainbow_err:
  278.     moveq.l    #-1,d0
  279.     bra    rainbow_rts
  280.  
  281.  
  282. ****    ****
  283. rainbow_ask_speed:
  284.     moveq.l    #SPEED_MAX,d0
  285.     bra    rainbow_rts
  286.  
  287.  
  288. ****    ****
  289. rainbow_ask_vdisp:
  290.     move.l    _speed(a6),d0
  291.     lea.l    ask_vdisp_table(pc),a0
  292.     add.w    d0,d0
  293.     move.w    (a0,d0.w),d0
  294.     bra    rainbow_rts
  295.  
  296. ask_vdisp_table:
  297.     .dc.w    351,234,117
  298.  
  299.  
  300. table2:
  301.     dpos    14,31,0
  302.     dpos    15,30,0
  303.     dpos    16,30,0
  304.     dpos    17,31,4
  305.  
  306.     dpos    12,31,0
  307.     dpos    12,30,0
  308.     dpos    13,29,0
  309.     dpos    14,28,0
  310.     dpos    15,28,0
  311.     dpos    16,28,0
  312.     dpos    17,28,0
  313.     dpos    18,29,0
  314.     dpos    19,30,0
  315.     dpos    19,31,3
  316.  
  317.     dpos    10,31,0
  318.     dpos    10,30,0
  319.     dpos    10,29,0
  320.     dpos    11,28,0
  321.     dpos    12,27,0
  322.     dpos    13,26,0
  323.     dpos    14,26,0
  324.     dpos    15,26,0
  325.     dpos    16,26,0
  326.     dpos    17,26,0
  327.     dpos    18,26,0
  328.     dpos    19,27,0
  329.     dpos    20,28,0
  330.     dpos    21,29,0
  331.     dpos    21,30,0
  332.     dpos    21,31,3
  333.  
  334.     dpos    8,31,0
  335.     dpos    8,30,0
  336.     dpos    8,29,0
  337.     dpos    9,28,0
  338.     dpos    9,27,0
  339.     dpos    10,26,0
  340.     dpos    11,25,0
  341.     dpos    12,25,0
  342.     dpos    13,24,0
  343.     dpos    14,24,0
  344.     dpos    15,24,0
  345.     dpos    16,24,0
  346.     dpos    17,24,0
  347.     dpos    18,24,0
  348.     dpos    19,25,0
  349.     dpos    20,25,0
  350.     dpos    21,26,0
  351.     dpos    22,27,0
  352.     dpos    22,28,0
  353.     dpos    23,29,0
  354.     dpos    23,30,0
  355.     dpos    23,31,3
  356.  
  357.     dpos    6,31,0
  358.     dpos    6,30,0
  359.     dpos    6,29,0
  360.     dpos    7,28,0
  361.     dpos    7,27,0
  362.     dpos    8,26,0
  363.     dpos    8,25,0
  364.     dpos    9,24,0
  365.     dpos    10,24,0
  366.     dpos    11,23,0
  367.     dpos    12,23,0
  368.     dpos    13,22,0
  369.     dpos    14,22,0
  370.     dpos    15,22,0
  371.     dpos    16,22,0
  372.     dpos    17,22,0
  373.     dpos    18,22,0
  374.     dpos    19,23,0
  375.     dpos    20,23,0
  376.     dpos    21,24,0
  377.     dpos    22,24,0
  378.     dpos    23,25,0
  379.     dpos    23,26,0
  380.     dpos    24,27,0
  381.     dpos    24,28,0
  382.     dpos    25,29,0
  383.     dpos    25,30,0
  384.     dpos    25,31,3
  385.  
  386.     dpos    15,31,0
  387.     dpos    16,31,3
  388.  
  389.     dpos    4,31,0
  390.     dpos    4,30,0
  391.     dpos    4,29,0
  392.     dpos    4,28,0
  393.     dpos    5,27,0
  394.     dpos    5,26,0
  395.     dpos    6,25,0
  396.     dpos    6,24,0
  397.     dpos    7,23,0
  398.     dpos    8,22,0
  399.     dpos    9,21,0
  400.     dpos    10,21,0
  401.     dpos    11,21,0
  402.     dpos    12,20,0
  403.     dpos    13,20,0
  404.     dpos    14,20,0
  405.     dpos    15,20,0
  406.     dpos    16,20,0
  407.     dpos    17,20,0
  408.     dpos    18,20,0
  409.     dpos    19,20,0
  410.     dpos    20,21,0
  411.     dpos    21,21,0
  412.     dpos    22,21,0
  413.     dpos    23,22,0
  414.     dpos    24,23,0
  415.     dpos    25,24,0
  416.     dpos    25,25,0
  417.     dpos    26,26,0
  418.     dpos    26,27,0
  419.     dpos    27,28,0
  420.     dpos    27,29,0
  421.     dpos    27,30,0
  422.     dpos    27,31,3
  423.  
  424.     dpos    13,31,0
  425.     dpos    13,30,0
  426.     dpos    14,30,0
  427.     dpos    14,29,0
  428.     dpos    15,29,0
  429.     dpos    16,29,0
  430.     dpos    17,29,0
  431.     dpos    17,30,0
  432.     dpos    18,30,0
  433.     dpos    18,31,3
  434.  
  435.     dpos    2,31,0
  436.     dpos    2,30,0
  437.     dpos    2,29,0
  438.     dpos    2,28,0
  439.     dpos    3,27,0
  440.     dpos    3,26,0
  441.     dpos    4,25,0
  442.     dpos    4,24,0
  443.     dpos    5,23,0
  444.     dpos    5,22,0
  445.     dpos    6,21,0
  446.     dpos    7,20,0
  447.     dpos    8,20,0
  448.     dpos    9,19,0
  449.     dpos    10,19,0
  450.     dpos    11,19,0
  451.     dpos    12,18,0
  452.     dpos    13,18,0
  453.     dpos    14,18,0
  454.     dpos    15,18,0
  455.     dpos    16,18,0
  456.     dpos    17,18,0
  457.     dpos    18,18,0
  458.     dpos    19,18,0
  459.     dpos    20,19,0
  460.     dpos    21,19,0
  461.     dpos    22,19,0
  462.     dpos    23,20,0
  463.     dpos    24,20,0
  464.     dpos    25,21,0
  465.     dpos    26,22,0
  466.     dpos    26,23,0
  467.     dpos    27,24,0
  468.     dpos    27,25,0
  469.     dpos    28,26,0
  470.     dpos    28,27,0
  471.     dpos    29,28,0
  472.     dpos    29,29,0
  473.     dpos    29,30,0
  474.     dpos    29,31,3
  475.  
  476.     dpos    11,31,0
  477.     dpos    11,30,0
  478.     dpos    11,29,0
  479.     dpos    12,29,0
  480.     dpos    12,28,0
  481.     dpos    13,28,0
  482.     dpos    13,27,0
  483.     dpos    14,27,0
  484.     dpos    15,27,0
  485.     dpos    16,27,0
  486.     dpos    17,27,0
  487.     dpos    18,27,0
  488.     dpos    18,28,0
  489.     dpos    19,28,0
  490.     dpos    19,29,0
  491.     dpos    20,29,0
  492.     dpos    20,30,0
  493.     dpos    20,31,3
  494.  
  495.     dpos    0,31,0
  496.     dpos    0,30,0
  497.     dpos    0,29,0
  498.     dpos    0,28,0
  499.     dpos    0,27,0
  500.     dpos    1,26,0
  501.     dpos    1,25,0
  502.     dpos    1,24,0
  503.     dpos    2,23,0
  504.     dpos    2,22,0
  505.     dpos    3,21,0
  506.     dpos    4,20,0
  507.     dpos    5,19,0
  508.     dpos    6,18,0
  509.     dpos    7,18,0
  510.     dpos    8,17,0
  511.     dpos    9,17,0
  512.     dpos    10,17,0
  513.     dpos    11,16,0
  514.     dpos    12,16,0
  515.     dpos    13,16,0
  516.     dpos    14,16,0
  517.     dpos    15,16,0
  518.     dpos    16,16,0
  519.     dpos    17,16,0
  520.     dpos    18,16,0
  521.     dpos    19,16,0
  522.     dpos    20,16,0
  523.     dpos    21,17,0
  524.     dpos    22,17,0
  525.     dpos    23,17,0
  526.     dpos    24,18,0
  527.     dpos    25,18,0
  528.     dpos    26,19,0
  529.     dpos    27,20,0
  530.     dpos    28,21,0
  531.     dpos    29,22,0
  532.     dpos    29,23,0
  533.     dpos    30,24,0
  534.     dpos    30,25,0
  535.     dpos    30,26,0
  536.     dpos    31,27,0
  537.     dpos    31,28,0
  538.     dpos    31,29,0
  539.     dpos    31,30,0
  540.     dpos    31,31,3
  541.  
  542.     dpos    9,31,0
  543.     dpos    9,30,0
  544.     dpos    9,29,0
  545.     dpos    10,28,0
  546.     dpos    10,27,0
  547.     dpos    11,27,0
  548.     dpos    11,26,0
  549.     dpos    12,26,0
  550.     dpos    13,25,0
  551.     dpos    14,25,0
  552.     dpos    15,25,0
  553.     dpos    16,25,0
  554.     dpos    17,25,0
  555.     dpos    18,25,0
  556.     dpos    19,26,0
  557.     dpos    20,26,0
  558.     dpos    20,27,0
  559.     dpos    21,27,0
  560.     dpos    21,28,0
  561.     dpos    22,29,0
  562.     dpos    22,30,0
  563.     dpos    22,31,3
  564.  
  565.     dpos    0,22,0
  566.     dpos    0,21,0
  567.     dpos    1,20,0
  568.     dpos    2,19,0
  569.     dpos    3,18,0
  570.     dpos    4,17,0
  571.     dpos    5,17,0
  572.     dpos    6,16,0
  573.     dpos    7,16,0
  574.     dpos    8,15,0
  575.     dpos    9,15,0
  576.     dpos    10,15,0
  577.     dpos    11,14,0
  578.     dpos    12,14,0
  579.     dpos    13,14,0
  580.     dpos    14,14,0
  581.     dpos    15,14,0
  582.     dpos    16,14,0
  583.     dpos    17,14,0
  584.     dpos    18,14,0
  585.     dpos    19,14,0
  586.     dpos    20,14,0
  587.     dpos    21,15,0
  588.     dpos    22,15,0
  589.     dpos    23,15,0
  590.     dpos    24,16,0
  591.     dpos    25,16,0
  592.     dpos    26,17,0
  593.     dpos    27,17,0
  594.     dpos    28,18,0
  595.     dpos    29,19,0
  596.     dpos    30,20,0
  597.     dpos    31,21,0
  598.     dpos    31,22,3
  599.  
  600.     dpos    7,31,0
  601.     dpos    7,30,0
  602.     dpos    7,29,0
  603.     dpos    8,28,0
  604.     dpos    8,27,0
  605.     dpos    9,26,0
  606.     dpos    9,25,0
  607.     dpos    10,25,0
  608.     dpos    11,24,0
  609.     dpos    12,24,0
  610.     dpos    13,23,0
  611.     dpos    14,23,0
  612.     dpos    15,23,0
  613.     dpos    16,23,0
  614.     dpos    17,23,0
  615.     dpos    18,23,0
  616.     dpos    19,24,0
  617.     dpos    20,24,0
  618.     dpos    21,25,0
  619.     dpos    22,25,0
  620.     dpos    22,26,0
  621.     dpos    23,27,0
  622.     dpos    23,28,0
  623.     dpos    24,29,0
  624.     dpos    24,30,0
  625.     dpos    24,31,3
  626.  
  627.     dpos    0,18,0
  628.     dpos    1,17,0
  629.     dpos    2,16,0
  630.     dpos    3,16,0
  631.     dpos    4,15,0
  632.     dpos    5,15,0
  633.     dpos    6,14,0
  634.     dpos    7,14,0
  635.     dpos    8,13,0
  636.     dpos    9,13,0
  637.     dpos    10,13,0
  638.     dpos    11,12,0
  639.     dpos    12,12,0
  640.     dpos    13,12,0
  641.     dpos    14,12,0
  642.     dpos    15,12,0
  643.     dpos    16,12,0
  644.     dpos    17,12,0
  645.     dpos    18,12,0
  646.     dpos    19,12,0
  647.     dpos    20,12,0
  648.     dpos    21,13,0
  649.     dpos    22,13,0
  650.     dpos    23,13,0
  651.     dpos    24,14,0
  652.     dpos    25,14,0
  653.     dpos    26,15,0
  654.     dpos    27,15,0
  655.     dpos    28,16,0
  656.     dpos    29,16,0
  657.     dpos    30,17,0
  658.     dpos    31,18,3
  659.  
  660.     dpos    5,31,0
  661.     dpos    5,30,0
  662.     dpos    5,29,0
  663.     dpos    5,28,0
  664.     dpos    6,28,0
  665.     dpos    6,27,0
  666.     dpos    6,26,0
  667.     dpos    7,26,0
  668.     dpos    7,25,0
  669.     dpos    7,24,0
  670.     dpos    8,24,0
  671.     dpos    8,23,0
  672.     dpos    9,23,0
  673.     dpos    10,23,0
  674.     dpos    9,22,0
  675.     dpos    10,22,0
  676.     dpos    11,22,0
  677.     dpos    12,22,0
  678.     dpos    12,21,0
  679.     dpos    13,21,0
  680.     dpos    14,21,0
  681.     dpos    15,21,0
  682.     dpos    16,21,0
  683.     dpos    17,21,0
  684.     dpos    18,21,0
  685.     dpos    19,21,0
  686.     dpos    19,22,0
  687.     dpos    20,22,0
  688.     dpos    21,22,0
  689.     dpos    22,22,0
  690.     dpos    21,23,0
  691.     dpos    22,23,0
  692.     dpos    23,23,0
  693.     dpos    23,24,0
  694.     dpos    24,24,0
  695.     dpos    24,25,0
  696.     dpos    24,26,0
  697.     dpos    25,26,0
  698.     dpos    25,27,0
  699.     dpos    25,28,0
  700.     dpos    26,28,0
  701.     dpos    26,29,0
  702.     dpos    26,30,0
  703.     dpos    26,31,3
  704.  
  705.     dpos    0,16,0
  706.     dpos    1,15,0
  707.     dpos    2,14,0
  708.     dpos    3,13,0
  709.     dpos    4,13,0
  710.     dpos    5,12,0
  711.     dpos    6,12,0
  712.     dpos    7,12,0
  713.     dpos    8,11,0
  714.     dpos    9,11,0
  715.     dpos    10,11,0
  716.     dpos    11,10,0
  717.     dpos    12,10,0
  718.     dpos    13,10,0
  719.     dpos    14,10,0
  720.     dpos    15,10,0
  721.     dpos    16,10,0
  722.     dpos    17,10,0
  723.     dpos    18,10,0
  724.     dpos    19,10,0
  725.     dpos    20,10,0
  726.     dpos    21,11,0
  727.     dpos    22,11,0
  728.     dpos    23,11,0
  729.     dpos    24,12,0
  730.     dpos    25,12,0
  731.     dpos    26,12,0
  732.     dpos    27,13,0
  733.     dpos    28,13,0
  734.     dpos    29,14,0
  735.     dpos    30,15,0
  736.     dpos    31,16,3
  737.  
  738.     dpos    3,31,0
  739.     dpos    3,30,0
  740.     dpos    3,29,0
  741.     dpos    3,28,0
  742.     dpos    4,27,0
  743.     dpos    4,26,0
  744.     dpos    5,25,0
  745.     dpos    5,24,0
  746.     dpos    6,23,0
  747.     dpos    6,22,0
  748.     dpos    7,22,0
  749.     dpos    7,21,0
  750.     dpos    8,21,0
  751.     dpos    9,20,0
  752.     dpos    10,20,0
  753.     dpos    11,20,0
  754.     dpos    12,19,0
  755.     dpos    13,19,0
  756.     dpos    14,19,0
  757.     dpos    15,19,0
  758.     dpos    16,19,0
  759.     dpos    17,19,0
  760.     dpos    18,19,0
  761.     dpos    19,19,0
  762.     dpos    20,20,0
  763.     dpos    21,20,0
  764.     dpos    22,20,0
  765.     dpos    23,21,0
  766.     dpos    24,21,0
  767.     dpos    24,22,0
  768.     dpos    25,22,0
  769.     dpos    25,23,0
  770.     dpos    26,24,0
  771.     dpos    26,25,0
  772.     dpos    27,26,0
  773.     dpos    27,27,0
  774.     dpos    28,28,0
  775.     dpos    28,29,0
  776.     dpos    28,30,0
  777.     dpos    28,31,3
  778.  
  779.     dpos    0,14,0
  780.     dpos    1,13,0
  781.     dpos    2,12,0
  782.     dpos    3,11,0
  783.     dpos    4,11,0
  784.     dpos    5,10,0
  785.     dpos    6,10,0
  786.     dpos    7,10,0
  787.     dpos    8,9,0
  788.     dpos    9,9,0
  789.     dpos    10,9,0
  790.     dpos    11,8,0
  791.     dpos    12,8,0
  792.     dpos    13,8,0
  793.     dpos    14,8,0
  794.     dpos    15,8,0
  795.     dpos    16,8,0
  796.     dpos    17,8,0
  797.     dpos    18,8,0
  798.     dpos    19,8,0
  799.     dpos    20,8,0
  800.     dpos    21,9,0
  801.     dpos    22,9,0
  802.     dpos    23,9,0
  803.     dpos    24,10,0
  804.     dpos    25,10,0
  805.     dpos    26,10,0
  806.     dpos    27,11,0
  807.     dpos    28,11,0
  808.     dpos    29,12,0
  809.     dpos    30,13,0
  810.     dpos    31,14,3
  811.  
  812.     dpos    1,31,0
  813.     dpos    1,30,0
  814.     dpos    1,29,0
  815.     dpos    1,28,0
  816.     dpos    1,27,0
  817.     dpos    2,27,0
  818.     dpos    2,26,0
  819.     dpos    2,25,0
  820.     dpos    2,24,0
  821.     dpos    3,25,0
  822.     dpos    3,24,0
  823.     dpos    3,23,0
  824.     dpos    3,22,0
  825.     dpos    4,23,0
  826.     dpos    4,22,0
  827.     dpos    4,21,0
  828.     dpos    5,21,0
  829.     dpos    5,20,0
  830.     dpos    6,20,0
  831.     dpos    6,19,0
  832.     dpos    7,19,0
  833.     dpos    8,19,0
  834.     dpos    8,18,0
  835.     dpos    9,18,0
  836.     dpos    10,18,0
  837.     dpos    11,18,0
  838.     dpos    11,17,0
  839.     dpos    12,17,0
  840.     dpos    13,17,0
  841.     dpos    14,17,0
  842.     dpos    15,17,0
  843.     dpos    16,17,0
  844.     dpos    17,17,0
  845.     dpos    18,17,0
  846.     dpos    19,17,0
  847.     dpos    20,17,0
  848.     dpos    20,18,0
  849.     dpos    21,18,0
  850.     dpos    22,18,0
  851.     dpos    23,18,0
  852.     dpos    23,19,0
  853.     dpos    24,19,0
  854.     dpos    25,19,0
  855.     dpos    25,20,0
  856.     dpos    26,20,0
  857.     dpos    26,21,0
  858.     dpos    27,21,0
  859.     dpos    27,22,0
  860.     dpos    27,23,0
  861.     dpos    28,22,0
  862.     dpos    28,23,0
  863.     dpos    28,24,0
  864.     dpos    28,25,0
  865.     dpos    29,24,0
  866.     dpos    29,25,0
  867.     dpos    29,26,0
  868.     dpos    29,27,0
  869.     dpos    30,27,0
  870.     dpos    30,28,0
  871.     dpos    30,29,0
  872.     dpos    30,30,0
  873.     dpos    30,31,3
  874.  
  875.     dpos    0,11,0
  876.     dpos    1,10,0
  877.     dpos    2,10,0
  878.     dpos    3,9,0
  879.     dpos    4,9,0
  880.     dpos    5,8,0
  881.     dpos    6,8,0
  882.     dpos    7,8,0
  883.     dpos    8,7,0
  884.     dpos    9,7,0
  885.     dpos    10,7,0
  886.     dpos    11,6,0
  887.     dpos    12,6,0
  888.     dpos    13,6,0
  889.     dpos    14,6,0
  890.     dpos    15,6,0
  891.     dpos    16,6,0
  892.     dpos    17,6,0
  893.     dpos    18,6,0
  894.     dpos    19,6,0
  895.     dpos    20,6,0
  896.     dpos    21,7,0
  897.     dpos    22,7,0
  898.     dpos    23,7,0
  899.     dpos    24,8,0
  900.     dpos    25,8,0
  901.     dpos    26,8,0
  902.     dpos    27,9,0
  903.     dpos    28,9,0
  904.     dpos    29,10,0
  905.     dpos    30,10,0
  906.     dpos    31,11,3
  907.  
  908.     dpos    0,26,0
  909.     dpos    0,25,0
  910.     dpos    0,24,0
  911.     dpos    0,23,0
  912.     dpos    1,23,0
  913.     dpos    1,22,0
  914.     dpos    1,21,0
  915.     dpos    2,21,0
  916.     dpos    2,20,0
  917.     dpos    3,20,0
  918.     dpos    3,19,0
  919.     dpos    4,19,0
  920.     dpos    4,18,0
  921.     dpos    5,18,0
  922.     dpos    6,17,0
  923.     dpos    7,17,0
  924.     dpos    8,16,0
  925.     dpos    9,16,0
  926.     dpos    10,16,0
  927.     dpos    11,15,0
  928.     dpos    12,15,0
  929.     dpos    13,15,0
  930.     dpos    14,15,0
  931.     dpos    15,15,0
  932.     dpos    16,15,0
  933.     dpos    17,15,0
  934.     dpos    18,15,0
  935.     dpos    19,15,0
  936.     dpos    20,15,0
  937.     dpos    21,16,0
  938.     dpos    22,16,0
  939.     dpos    23,16,0
  940.     dpos    24,17,0
  941.     dpos    25,17,0
  942.     dpos    26,18,0
  943.     dpos    27,18,0
  944.     dpos    27,19,0
  945.     dpos    28,19,0
  946.     dpos    28,20,0
  947.     dpos    29,20,0
  948.     dpos    29,21,0
  949.     dpos    30,21,0
  950.     dpos    30,22,0
  951.     dpos    30,23,0
  952.     dpos    31,23,0
  953.     dpos    31,24,0
  954.     dpos    31,25,0
  955.     dpos    31,26,3
  956.  
  957.     dpos    0,7,0
  958.     dpos    1,7,0
  959.     dpos    2,7,0
  960.     dpos    3,6,0
  961.     dpos    4,6,0
  962.     dpos    5,6,0
  963.     dpos    6,5,0
  964.     dpos    7,5,0
  965.     dpos    8,5,0
  966.     dpos    9,5,0
  967.     dpos    10,4,0
  968.     dpos    11,4,0
  969.     dpos    12,4,0
  970.     dpos    13,4,0
  971.     dpos    14,4,0
  972.     dpos    15,4,0
  973.     dpos    16,4,0
  974.     dpos    17,4,0
  975.     dpos    18,4,0
  976.     dpos    19,4,0
  977.     dpos    20,4,0
  978.     dpos    21,4,0
  979.     dpos    22,5,0
  980.     dpos    23,5,0
  981.     dpos    24,5,0
  982.     dpos    25,5,0
  983.     dpos    26,6,0
  984.     dpos    27,6,0
  985.     dpos    28,6,0
  986.     dpos    29,7,0
  987.     dpos    30,7,0
  988.     dpos    31,7,3
  989.  
  990.     dpos    0,20,0
  991.     dpos    0,19,0
  992.     dpos    1,19,0
  993.     dpos    1,18,0
  994.     dpos    2,18,0
  995.     dpos    2,17,0
  996.     dpos    3,17,0
  997.     dpos    4,16,0
  998.     dpos    5,16,0
  999.     dpos    6,15,0
  1000.     dpos    7,15,0
  1001.     dpos    8,14,0
  1002.     dpos    9,14,0
  1003.     dpos    10,14,0
  1004.     dpos    11,13,0
  1005.     dpos    12,13,0
  1006.     dpos    13,13,0
  1007.     dpos    14,13,0
  1008.     dpos    15,13,0
  1009.     dpos    16,13,0
  1010.     dpos    17,13,0
  1011.     dpos    18,13,0
  1012.     dpos    19,13,0
  1013.     dpos    20,13,0
  1014.     dpos    21,14,0
  1015.     dpos    22,14,0
  1016.     dpos    23,14,0
  1017.     dpos    24,15,0
  1018.     dpos    25,15,0
  1019.     dpos    26,16,0
  1020.     dpos    27,16,0
  1021.     dpos    28,17,0
  1022.     dpos    29,17,0
  1023.     dpos    29,18,0
  1024.     dpos    30,18,0
  1025.     dpos    30,19,0
  1026.     dpos    31,19,0
  1027.     dpos    31,20,3
  1028.  
  1029.     dpos    0,5,0
  1030.     dpos    1,5,0
  1031.     dpos    2,5,0
  1032.     dpos    3,4,0
  1033.     dpos    4,4,0
  1034.     dpos    5,4,0
  1035.     dpos    6,3,0
  1036.     dpos    7,3,0
  1037.     dpos    8,3,0
  1038.     dpos    9,3,0
  1039.     dpos    10,2,0
  1040.     dpos    11,2,0
  1041.     dpos    12,2,0
  1042.     dpos    13,2,0
  1043.     dpos    14,2,0
  1044.     dpos    15,2,0
  1045.     dpos    16,2,0
  1046.     dpos    17,2,0
  1047.     dpos    18,2,0
  1048.     dpos    19,2,0
  1049.     dpos    20,2,0
  1050.     dpos    21,2,0
  1051.     dpos    22,3,0
  1052.     dpos    23,3,0
  1053.     dpos    24,3,0
  1054.     dpos    25,3,0
  1055.     dpos    26,4,0
  1056.     dpos    27,4,0
  1057.     dpos    28,4,0
  1058.     dpos    29,5,0
  1059.     dpos    30,5,0
  1060.     dpos    31,5,3
  1061.  
  1062.     dpos    0,17,0
  1063.     dpos    1,16,0
  1064.     dpos    2,15,0
  1065.     dpos    3,15,0
  1066.     dpos    3,14,0
  1067.     dpos    4,14,0
  1068.     dpos    5,14,0
  1069.     dpos    5,13,0
  1070.     dpos    6,13,0
  1071.     dpos    7,13,0
  1072.     dpos    8,12,0
  1073.     dpos    9,12,0
  1074.     dpos    10,12,0
  1075.     dpos    11,11,0
  1076.     dpos    12,11,0
  1077.     dpos    13,11,0
  1078.     dpos    14,11,0
  1079.     dpos    15,11,0
  1080.     dpos    16,11,0
  1081.     dpos    17,11,0
  1082.     dpos    18,11,0
  1083.     dpos    19,11,0
  1084.     dpos    20,11,0
  1085.     dpos    21,12,0
  1086.     dpos    22,12,0
  1087.     dpos    23,12,0
  1088.     dpos    24,13,0
  1089.     dpos    25,13,0
  1090.     dpos    26,13,0
  1091.     dpos    26,14,0
  1092.     dpos    27,14,0
  1093.     dpos    28,14,0
  1094.     dpos    28,15,0
  1095.     dpos    29,15,0
  1096.     dpos    30,16,0
  1097.     dpos    31,17,3
  1098.  
  1099.     dpos    0,3,0
  1100.     dpos    1,2,0
  1101.     dpos    2,2,0
  1102.     dpos    3,2,0
  1103.     dpos    4,2,0
  1104.     dpos    5,1,0
  1105.     dpos    6,1,0
  1106.     dpos    7,1,0
  1107.     dpos    8,1,0
  1108.     dpos    9,0,0
  1109.     dpos    10,0,0
  1110.     dpos    11,0,0
  1111.     dpos    12,0,0
  1112.     dpos    13,0,0
  1113.     dpos    14,0,0
  1114.     dpos    15,0,0
  1115.     dpos    16,0,0
  1116.     dpos    17,0,0
  1117.     dpos    18,0,0
  1118.     dpos    19,0,0
  1119.     dpos    20,0,0
  1120.     dpos    21,0,0
  1121.     dpos    22,0,0
  1122.     dpos    23,1,0
  1123.     dpos    24,1,0
  1124.     dpos    25,1,0
  1125.     dpos    26,1,0
  1126.     dpos    27,2,0
  1127.     dpos    28,2,0
  1128.     dpos    29,2,0
  1129.     dpos    30,2,0
  1130.     dpos    31,3,3
  1131.  
  1132.     dpos    0,15,0
  1133.     dpos    1,14,0
  1134.     dpos    2,13,0
  1135.     dpos    3,12,0
  1136.     dpos    4,12,0
  1137.     dpos    5,11,0
  1138.     dpos    6,11,0
  1139.     dpos    7,11,0
  1140.     dpos    8,10,0
  1141.     dpos    9,10,0
  1142.     dpos    10,10,0
  1143.     dpos    11,9,0
  1144.     dpos    12,9,0
  1145.     dpos    13,9,0
  1146.     dpos    14,9,0
  1147.     dpos    15,9,0
  1148.     dpos    16,9,0
  1149.     dpos    17,9,0
  1150.     dpos    18,9,0
  1151.     dpos    19,9,0
  1152.     dpos    20,9,0
  1153.     dpos    21,10,0
  1154.     dpos    22,10,0
  1155.     dpos    23,10,0
  1156.     dpos    24,11,0
  1157.     dpos    25,11,0
  1158.     dpos    26,11,0
  1159.     dpos    27,12,0
  1160.     dpos    28,12,0
  1161.     dpos    29,13,0
  1162.     dpos    30,14,0
  1163.     dpos    31,15,3
  1164.  
  1165.     dpos    0,0,0
  1166.     dpos    1,0,0
  1167.     dpos    2,0,0
  1168.     dpos    29,0,0
  1169.     dpos    30,0,0
  1170.     dpos    31,0,3
  1171.  
  1172.  
  1173.  
  1174.     dpos    0,13,0
  1175.     dpos    0,12,0
  1176.     dpos    1,12,0
  1177.     dpos    1,11,0
  1178.     dpos    2,11,0
  1179.     dpos    3,10,0
  1180.     dpos    4,10,0
  1181.     dpos    5,9,0
  1182.     dpos    6,9,0
  1183.     dpos    7,9,0
  1184.     dpos    8,8,0
  1185.     dpos    9,8,0
  1186.     dpos    10,8,0
  1187.     dpos    11,7,0
  1188.     dpos    12,7,0
  1189.     dpos    13,7,0
  1190.     dpos    14,7,0
  1191.     dpos    15,7,0
  1192.     dpos    16,7,0
  1193.     dpos    17,7,0
  1194.     dpos    18,7,0
  1195.     dpos    19,7,0
  1196.     dpos    20,7,0
  1197.     dpos    21,8,0
  1198.     dpos    22,8,0
  1199.     dpos    23,8,0
  1200.     dpos    24,9,0
  1201.     dpos    25,9,0
  1202.     dpos    26,9,0
  1203.     dpos    27,10,0
  1204.     dpos    28,10,0
  1205.     dpos    29,11,0
  1206.     dpos    30,11,0
  1207.     dpos    30,12,0
  1208.     dpos    31,12,0
  1209.     dpos    31,13,3
  1210.  
  1211.     dpos    0,10,0
  1212.     dpos    0,9,0
  1213.     dpos    1,9,0
  1214.     dpos    2,9,0
  1215.     dpos    3,9,0
  1216.     dpos    0,8,0
  1217.     dpos    1,8,0
  1218.     dpos    2,8,0
  1219.     dpos    3,8,0
  1220.     dpos    4,8,0
  1221.     dpos    3,7,0
  1222.     dpos    4,7,0
  1223.     dpos    5,7,0
  1224.     dpos    6,7,0
  1225.     dpos    7,7,0
  1226.     dpos    6,6,0
  1227.     dpos    7,6,0
  1228.     dpos    8,6,0
  1229.     dpos    9,6,0
  1230.     dpos    10,6,0
  1231.     dpos    10,5,0
  1232.     dpos    11,5,0
  1233.     dpos    12,5,0
  1234.     dpos    13,5,0
  1235.     dpos    14,5,0
  1236.     dpos    15,5,0
  1237.     dpos    16,5,0
  1238.     dpos    17,5,0
  1239.     dpos    18,5,0
  1240.     dpos    19,5,0
  1241.     dpos    20,5,0
  1242.     dpos    21,5,0
  1243.     dpos    21,6,0
  1244.     dpos    22,6,0
  1245.     dpos    23,6,0
  1246.     dpos    24,6,0
  1247.     dpos    25,6,0
  1248.     dpos    24,7,0
  1249.     dpos    25,7,0
  1250.     dpos    26,7,0
  1251.     dpos    27,7,0
  1252.     dpos    28,7,0
  1253.     dpos    27,8,0
  1254.     dpos    28,8,0
  1255.     dpos    29,8,0
  1256.     dpos    30,8,0
  1257.     dpos    31,8,0
  1258.     dpos    29,9,0
  1259.     dpos    30,9,0
  1260.     dpos    31,9,0
  1261.     dpos    31,10,3
  1262.  
  1263.     dpos    0,6,0
  1264.     dpos    1,6,0
  1265.     dpos    2,6,0
  1266.     dpos    3,5,0
  1267.     dpos    4,5,0
  1268.     dpos    5,5,0
  1269.     dpos    6,4,0
  1270.     dpos    7,4,0
  1271.     dpos    8,4,0
  1272.     dpos    9,4,0
  1273.     dpos    10,3,0
  1274.     dpos    11,3,0
  1275.     dpos    12,3,0
  1276.     dpos    13,3,0
  1277.     dpos    14,3,0
  1278.     dpos    15,3,0
  1279.     dpos    16,3,0
  1280.     dpos    17,3,0
  1281.     dpos    18,3,0
  1282.     dpos    19,3,0
  1283.     dpos    20,3,0
  1284.     dpos    21,3,0
  1285.     dpos    22,4,0
  1286.     dpos    23,4,0
  1287.     dpos    24,4,0
  1288.     dpos    25,4,0
  1289.     dpos    26,5,0
  1290.     dpos    27,5,0
  1291.     dpos    28,5,0
  1292.     dpos    29,6,0
  1293.     dpos    30,6,0
  1294.     dpos    31,6,3
  1295.  
  1296.     dpos    0,4,0
  1297.     dpos    1,4,0
  1298.     dpos    2,4,0
  1299.     dpos    1,3,0
  1300.     dpos    2,3,0
  1301.     dpos    3,3,0
  1302.     dpos    4,3,0
  1303.     dpos    5,3,0
  1304.     dpos    5,2,0
  1305.     dpos    6,2,0
  1306.     dpos    7,2,0
  1307.     dpos    8,2,0
  1308.     dpos    9,2,0
  1309.     dpos    9,1,0
  1310.     dpos    10,1,0
  1311.     dpos    11,1,0
  1312.     dpos    12,1,0
  1313.     dpos    13,1,0
  1314.     dpos    14,1,0
  1315.     dpos    15,1,0
  1316.     dpos    16,1,0
  1317.     dpos    17,1,0
  1318.     dpos    18,1,0
  1319.     dpos    19,1,0
  1320.     dpos    20,1,0
  1321.     dpos    21,1,0
  1322.     dpos    22,1,0
  1323.     dpos    22,2,0
  1324.     dpos    23,2,0
  1325.     dpos    24,2,0
  1326.     dpos    25,2,0
  1327.     dpos    26,2,0
  1328.     dpos    26,3,0
  1329.     dpos    27,3,0
  1330.     dpos    28,3,0
  1331.     dpos    29,3,0
  1332.     dpos    30,3,0
  1333.     dpos    29,4,0
  1334.     dpos    30,4,0
  1335.     dpos    31,4,3
  1336.  
  1337.     dpos    0,2,0
  1338.     dpos    0,1,0
  1339.     dpos    1,1,0
  1340.     dpos    2,1,0
  1341.     dpos    3,1,0
  1342.     dpos    4,1,0
  1343.     dpos    3,0,0
  1344.     dpos    4,0,0
  1345.     dpos    5,0,0
  1346.     dpos    6,0,0
  1347.     dpos    7,0,0
  1348.     dpos    8,0,0
  1349.     dpos    23,0,0
  1350.     dpos    24,0,0
  1351.     dpos    25,0,0
  1352.     dpos    26,0,0
  1353.     dpos    27,0,0
  1354.     dpos    28,0,0
  1355.     dpos    27,1,0
  1356.     dpos    28,1,0
  1357.     dpos    29,1,0
  1358.     dpos    30,1,0
  1359.     dpos    31,1,0
  1360.     dpos    31,2,3
  1361.  
  1362.  
  1363.     .dc.l    -1        * 終端フラグ
  1364.  
  1365.  
  1366. appear:
  1367.     .ds.w    1
  1368.  
  1369.  
  1370.